package com.集合.Map集合.案例;
/*案例：HashMap集合存储学生对象并遍历
需求：创建一个HashMap集合，键是学生对象(Student)，值是居住地(String)。存储多个键值对元素，并遍历。
要求保证键的唯一性：如果学生对象的成员变量值相同，我们就认为是同一个对象
思路：
1.定义学生类
2.创建HashMap集合对象
3.创建学生对象
4.把学生添加到集合
5.遍历集合
6.在学生类中重写两个方法
    hashCode()
    equals()
*/
import java.util.HashMap;
import java.util.Set;
public class HashMapDemo2 {
    public static void main(String[] args){
        HashMap<Student,String> hm = new HashMap<Student,String>();

        Student s1 = new Student("张三",20);
        Student s2 = new Student("李四",21);
        Student s3 = new Student("汤姆",22);
        Student s4 = new Student("杰瑞",23);

        Student s5 = new Student("杰瑞",23);
        Student s6 = new Student("汤姆",22);

        hm.put(s1,"山西");
        hm.put(s2,"山东");
        hm.put(s3,"陕西");
        hm.put(s4,"广西");

        hm.put(s5,"广西");//重复键值不存储
        hm.put(s6,"北京");//s6,s3键相同,s3会被s6覆盖，即汤姆的居住地由陕西变为北京

        Set<Student> set = hm.keySet();
        for(Student s:set){
            String value = hm.get(s);
            System.out.println("学生对象:"+s+","+value);
        }
    }
}
